#ifndef LOGGER_H
#define LOGGER_H

#include <QString>
#include <QFileInfo>
#include <QDebug>

inline QString getFileName(const QString& path)
{
    QFileInfo fileInfo(path);
    return fileInfo.fileName();
}

inline QDebug logMessage(const QString& level, const char* file, int line) {
    QString tag = QString("[%1:%2]").arg(getFileName(file), QString::number(line));
    return qDebug().noquote() << level << " " << tag;
}

// 修改宏，传递文件名和行号
#define LOG_INFO() logMessage("[INFO]", __FILE__, __LINE__)
#define LOG_DEBUG() logMessage("[DEBUG]", __FILE__, __LINE__)
#define LOG_ERROR() logMessage("[ERROR]", __FILE__, __LINE__)
#define LOG_FATAL() logMessage("[FATAL]", __FILE__, __LINE__)


#endif // LOGGER_H
